use crate::Term;

pub(super) struct Panic;

impl Panic {
    pub(super) fn install() {
        better_panic::install() ;
        
        let hook = std::panic::take_hook();
        std::panic::set_hook(Box::new(|info| {
            Term::goodbye(||{
                // hook(info) ;
                1 
            });
        })) ;
    }
}

// 这段代码做了什么事情？
// 先是better_panic::install设置了新的hook , 满足了漂亮打印的需求
// 但是原本程序是在运行在row-mode下的  所以你直接打印会花屏
// 于是我们先取出这个刚刚设置的hook 
// 然后设置一个新hook 这个新hook会先恢复到原本的终端界面  然后再彩色打印并退出程序